package com.xyf.blog.service;

import com.xyf.blog.NotFoundException;
import com.xyf.blog.dao.TypeRepository;
import com.xyf.blog.po.Type;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;
//这里因为是简单的jpa操作，所以就直接在service中写sql方法了
@Service
public class TypeServiceImpl implements TypeService{
    @Autowired
    private TypeRepository typeRepository;
    //把增删改查放入到事务中，但事务是一组操作，要么成功，要么全部失败
    @Transactional
//    新增加type
    @Override
    public Type saveType(Type type) {
        //这里数据库中的id是主键自动增长，所以不用传id
       return typeRepository.save(type);
    }


    @Transactional
    @Override
    public Type getType(Long id) {
        return typeRepository.getOne(id);
    }

    @Transactional
    @Override

    //查询所有
    public Page<Type> listType(Pageable pageable) {
        return typeRepository.findAll(pageable);
    }


    //更新修改type
    @Transactional
    @Override
    public Type updateType(Long id, Type type) {
        Type type1=typeRepository.getOne(id);

    //如果数据库中有这个type，就更新，不然就报不存在的错误
        if (type1==null){
            throw  new NotFoundException("不存在该类型");
        }else {
            //这里删除了一些源码，可能会出事
            return typeRepository.save(type);
        }

    }
//删除type
    @Transactional
    @Override
    public Boolean deleteType(Long id) {
         typeRepository.deleteById(id);

        return null;
    }

    //修改service

}
